package com.binyuan.move.novelweb;//package com.ruoyi.common.novelweb;
//
//import cn.novelweb.tool.video.recording.ScreenRecorder;
//import javafx.application.Application;
//import javafx.event.ActionEvent;
//import javafx.geometry.Pos;
//import javafx.scene.Scene;
//import javafx.scene.control.Button;
//import javafx.scene.layout.HBox;
//import javafx.stage.Stage;
//import lombok.extern.slf4j.Slf4j;
//
///**
// * <p>屏幕抓取桌面程序</p>
// * <p>2019-12-11 17:05</p>
// *
// * @author Dai Yuanchuan
// **/
//@Slf4j
//public class ScreenCapture extends Application {
//
//   private  static ScreenRecorder recorder = null;
//    /**
//     * 获取录屏程序对象
//     * @return 录屏程序对象
//     */
//    private ScreenCapture() {
//         recorder =  new ScreenRecorder();
//        // 首先你需要构建录屏程序对象,这个是录屏的核心
//        // 然后你可以定义一些你需要的参数,直接调用对应的set方法就行
//
//        // 这里不设置任何参数,直接采用默认值...
//         recorder.setSaveTo("D://move");
//         recorder.setPreset("veryslow");
//        // 所有可设置的参数参考 com.dai.RecordingParameters
//    }
//    //
//    public  static ScreenRecorder getScreenRecorder(){
//        return recorder;
//    }
//
//    @Override
//    public void start(Stage primaryStage) {
//        // 设置完参数后就可以使用ScreenRecorder内置的一些方法了
//        // start() -> pause() -> stop()
//        // 注意上面三个方法是顺序调用的
//        // 也就是说,当你调用了stop后 才能重新、也只能调用start
//        // 而且这三个方法在一个轮回期间 只能调用一次.
//
//        // 如果你想要正确的生成录屏文件
//        // 一定要调用stop方法,不可以直接停止程序
//
//        ScreenRecorder screenRecorder = ScreenCapture.getScreenRecorder();
//
//        // 按钮、布局、样式、面板等等
//        Button start = new Button();
//        Button pause = new Button();
//        Button stop = new Button();
//        start.setText("开始");
//        start.getStyleClass().add("start");
//        start.setOnAction((ActionEvent event) -> {
//            log.info("现在开始录屏啦~~~");
//
//            // 调用录屏的开始程序
//            // 调用start方法之后会进行一个短暂的初始化
//            // 会在getSaveTo()下面生成一个*.mp4文件
//            screenRecorder.start();
//
//            // 生成的视频文件名默认是使用当前时间的毫秒数
//            // 如果你需要自定义生成文件名称,可以将你的文件名传入start方法
//            // 就像这样,注意文件名不需要加上后缀
//            // start("201912录屏文件");
//
//            pause.setDisable(false);
//            stop.setDisable(false);
//            start.setDisable(true);
//        });
//
//        pause.setText("暂停");
//        pause.getStyleClass().add("pause");
//        pause.setOnAction((ActionEvent event) -> {
//            log.info("暂停录屏,你可以一会再开始~~");
//
//            // 调用录屏暂停程序
//            // 暂停之后可以调用 start() 方法重新开始
//            // 也可以直接调用 stop() 方法结束本次录制
//            screenRecorder.pause();
//
//            start.setDisable(false);
//            stop.setDisable(false);
//            pause.setDisable(true);
//        });
//        pause.setDisable(true);
//
//
//        stop.setText("结束");
//        stop.getStyleClass().add("stop");
//        stop.setOnAction((ActionEvent event) -> {
//            log.info("你结束了本次录屏,如果你还需要录制,可以重新点击开始按钮~~");
//
//            // 调用录屏停止程序
//            // 停止完成之后,才可以重新调用start方法
//            // 进行下一个录屏的轮回
//            screenRecorder.stop();
//
//            start.setDisable(false);
//            stop.setDisable(true);
//            pause.setDisable(true);
//        });
//        stop.setDisable(true);
//
//
//        HBox hbox = new HBox();
//        hbox.setSpacing(10);
//        // 设置居中
//        hbox.setAlignment(Pos.CENTER);
//        hbox.getChildren().addAll(start, pause, stop);
//        hbox.setStyle("-fx-font: 20 arial;-fx-font-family: 'Microsoft YaHei';");
//
//
//        Scene scene = new Scene(hbox, 300, 80);
//        primaryStage.setTitle("屏幕录制程序v1.0");
//        primaryStage.setScene(scene);
//        primaryStage.setResizable(false);
//        primaryStage.show();
//    }
//
//    public boolean stopVodio(){
//        log.info("你结束了本次录屏,如果你还需要录制,可以重新点击开始按钮~~");
//
//        // 调用录屏停止程序
//        // 停止完成之后,才可以重新调用start方法
//        // 进行下一个录屏的轮回
//        screenRecorder.stop();
//    }
//    public static void main(String[] args) {
//        launch(args);
//    }
//}
